]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
ScreenShield: only inhibit suspend if we're the active session
authorRui Matos <tiagomatos@gmail.com>
Wed, 13 May 2015 19:42:13 +0000 (21:42 +0200)
committerRui Matos <tiagomatos@gmail.com>
Thu, 14 May 2015 13:11:19 +0000 (15:11 +0200)
If we aren't the active session clutter can't animate and thus we
can't expect the shield to be shown before releasing the suspend
inhibitor so we should release it immediately when becoming inactive.

https://bugzilla.gnome.org/show_bug.cgi?id=749228

js/ui/screenShield.js

index e81c782f3f1613467d8779cee5bf03abfdbdebb9..d8d991c20efa4ff2919f57aa9e9f4651acb01353 100644 (file)
@@ -511,11 +511,14 @@ const ScreenShield = new Lang.Class({
         this._loginManager.connect('prepare-for-sleep',
                                    Lang.bind(this, this._prepareForSleep));
 
+        this._loginSession = null;
         this._loginManager.getCurrentSessionProxy(Lang.bind(this,
             function(sessionProxy) {
                 this._loginSession = sessionProxy;
                 this._loginSession.connectSignal('Lock', Lang.bind(this, function() { this.lock(false); }));
                 this._loginSession.connectSignal('Unlock', Lang.bind(this, function() { this.deactivate(false); }));
+                this._loginSession.connect('g-properties-changed', Lang.bind(this, this._syncInhibitor));
+                this._syncInhibitor();
             }));
 
         this._settings = new Gio.Settings({ schema_id: SCREENSAVER_SCHEMA });
@@ -675,7 +678,8 @@ const ScreenShield = new Lang.Class({
     },
 
     _syncInhibitor: function() {
-        let inhibit = (!this._isActive && this._settings.get_boolean(LOCK_ENABLED_KEY));
+        let inhibit = (this._loginSession && this._loginSession.Active &&
+                       !this._isActive && this._settings.get_boolean(LOCK_ENABLED_KEY));
         if (inhibit) {
             this._loginManager.inhibit(_("GNOME needs to lock the screen"),
                                        Lang.bind(this, function(inhibitor) {